const { am2tex } = require('asciimath-js')
const tex2svg = require('./tex2svg.js')
const { stdin, stdout } = process
const buf = []

stdin.setEncoding('utf8')

stdin.on('readable', () => {
  let data
  while ((data = stdin.read()) !== null) {
    buf.push(data.trim())
  }
})

const convert = process.argv[2] === '--am'
  ? (input) => tex2svg(am2tex(input))
  : tex2svg

function onEnd () {
  const input = buf.join('\n')
  convert(input).then(svg => {
    console.log(svg)
    process.exit()
  })
}

// 在 windows 上, ctrl-d 无法结束输入, 你可以用 ctrl-c 强制结束
// 或者通过文件重定向:
// $ "node" index.js < input.txt
stdin.on('end', onEnd)
process.on('SIGINT', onEnd)
